The traditional disadvantage of secret key cryptography is that the key has to be exchanged between the parties. Public key cryptography such as RSA, by contrast, relies on a public key and a private key and there is no need to exchange keys with another party, with the threat of having the key stolen or revealed. A disadvantage of public key systems is speed. Due to the complexity of the encryption algorithms used in many public-key systems, they can be far slower than secret key systems. A secret key encryption algorithm can be considerably faster and yet provide comparable encryption strength. It has been proposed to use public key encryption to transmit a secret key, and thereafter to use secret key encryption.
Known encryption methods rely upon algorithms that are widely published. Popular systems such as RSA may be built into programs such as Microsoft Explorer or Mozilla Firefox. Security would be increased if the encryption method used for any particular data to be transmitted was unknown, but in conventional systems the receiver must be provided with an application that will decrypt cipher text into plain text and it is relatively easy to determine which system is being used.